#!/bin/bash
#set -u

#Copyright (c) 2025, Alibaba Cloud and its affiliates;
#Licensed under the Apache License, Version 2.0 (the "License");
#you may not use this file except in compliance with the License.
#You may obtain a copy of the License at

#   http://www.apache.org/licenses/LICENSE-2.0

#Unless required by applicable law or agreed to in writing, software
#distributed under the License is distributed on an "AS IS" BASIS,
#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#See the License for the specific language governing permissions and
#limitations under the License.


pkg_path="/root/sdk"
mkdir -p $pkg_path
pkg_name="fce-server"
pkg_version="v1.0"
pkg_home=$pkg_path/$pkg_name

cd $pkg_home
conf=$pkg_home/config/fce_server.conf

# Function: print the log
# How to call: logging $LINENO <log content>
# e.g: logging $LINENO "log content"
function logging()
{
  hostname=`hostname`
  echo $(date "+%Y-%m-%d %H:%M:%S")" - (host:$hostname)[line:"$1"] - DEBUG: "$2
}

# Function: read fce.conf
# How to call: readINI <fce.conf path> <Key>
# e.g: readINI /root/fce.conf Version
function readINI()
{
  conf=$1
  key=$2
  var=$(grep -i "${key} =" ${conf} | sed -E 's/[ "\t]//g' | awk -F= '{print $2}')
  echo ${var}
}

# Function: install in Simple Mode
install_SimpleMode()
{

  logging $LINENO "Function install_SimpleMode Start"

  #Py3="/usr/local/fce/python3.9.10"
  #Py3env="/usr/local/fce/python3.9env"
  PY_VERSION="Python-3.11.9"
  Py3="/usr/local/softwares/$PY_VERSION"
  Py3env="/usr/local/fce/${PY_VERSION}env"
  OSSEndpoint=$(readINI $conf OSSEndpoint)
  OSSBucket=$(readINI $conf OSSBucket)
  arch=`arch`
  mkdir -p /usr/local/softwares
  if [ ! -d "$Py3" ]; then
    wget http://$OSSBucket.$OSSEndpoint/packages/env/fce/$PY_VERSION.$arch.tgz
    mv $PY_VERSION.$arch.tgz /usr/local/softwares/ -f
    tar -zxvf /usr/local/softwares/$PY_VERSION.$arch.tgz -C /usr/local/softwares > /dev/null
  fi
  if [ ! -d "$Py3env" ]; then
    wget http://$OSSBucket.$OSSEndpoint/packages/env/fce/${PY_VERSION}env.$arch.tgz
    mv ${PY_VERSION}env.$arch.tgz /usr/local/fce/ -f
    tar -zxvf /usr/local/fce/${PY_VERSION}env.$arch.tgz -C /usr/local/fce > /dev/null
  fi

  bash deploy.sh  -e /usr/local/fce/${PY_VERSION}env/bin
  cd $pkg_path
  logging $LINENO "Function install_SimpleMode End"
}

if [ ! -f $conf ]; then
  logging $LINENO $conf" Not Exist; Eixt"
  exit
fi

Mode=$(readINI $conf Mode)
if [[ $Mode == *"Simple"* ]]; then
  install_SimpleMode $pkg_home
else
  logging $LINENO "Mode not support; Eixt"
fi